package com.jinzhi.jzweb.service;

import com.baomidou.mybatisplus.plugins.Page;
import com.jinzhi.common.utils.Result;
import com.jinzhi.jzweb.domain.JazInterviewDO;
import com.jinzhi.common.base.CoreService;
import com.jinzhi.jzweb.domain.JazUserAuntDO;
import com.jinzhi.jzweb.domain.param.UserInterViewBackGroundQuery;
import com.jinzhi.jzweb.domain.param.UserInterViewQuery;
import com.jinzhi.jzweb.domain.vo.userAunt.UserVO;

import java.util.List;

/**
 * 
 * <pre>
 * 面试邀约表
 * </pre>
 * <small> 2024-05-13 15:29:16 | Long</small>
 */
public interface JazInterviewService extends CoreService<JazInterviewDO> {
    /**
     * 分页查询面试邀约列表
     * @param userInterViewQuery
     * @return
     */
    Page<JazInterviewDO> getUserInterviewPage(UserInterViewQuery userInterViewQuery);

    /**
     * 后台 根据id查询详情
     * @param id
     * @return
     */
    JazInterviewDO getUserInterviewById(Long id);

    /**
     * 面试邀约-确认推送
     * @param jazInterviewDO
     * @return
     */
    Result userInterviewPush(JazInterviewDO jazInterviewDO);

    /**
     * 修改面试结果
     * @return
     */
    Result updateUserInterview(JazInterviewDO jazInterviewDO);

    /**
     * 查询所有的月嫂信息
     * @return
     */
    List<UserVO> getUserInterviewAunt(Long id,Long inviterId,String projectId,Long inviteeId);

    /**
     * 后台分页查询面试邀约
     * @param userInterViewQuery
     * @return
     */
    Page<JazInterviewDO> getUserInterviewBackgroundPage(UserInterViewBackGroundQuery userInterViewQuery);

    /**
     * 后台面试邀约
     * @param jazInterviewDO
     * @return
     */
    Result inviteInterview(JazInterviewDO jazInterviewDO);

    /**
     * 后台-面试邀约删除
     * @param demandId
     * @param inviteeId
     * @return
     */
    Result<Object> backgroundDeleted(Long demandId, Long inviteeId);

    /**
     * 后台-查询详情
     * @param demandId
     * @param inviteeId
     * @return
     */
    JazInterviewDO backgroundGetInterview(Long demandId, Long inviteeId);

    /**
     * 修改面試结果
     * @param jazInterviewDO
     * @return
     */
    Result backgroundUpdateInterview(JazInterviewDO jazInterviewDO);

    /**
     * 后台-取消面试邀约
     * @param
     * @return
     */
    Result backgroundCancelInterview(Long demandId, Long inviteeId);

    /**
     * 后台-修改面试邀约
     * @param jazInterviewDO
     * @return
     */
    Result backgroundEditInterview(JazInterviewDO jazInterviewDO);

    /**
     * 用户-取消面试邀约
     * @param id
     * @return
     */
    Result cancelInterview(Long id);

    /**
     * 用户-修改面试邀约
     * @param jazInterviewDO
     * @return
     */
    Result editInterview(JazInterviewDO jazInterviewDO);
}
